package com.laity.unsafe;

import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;

/**
 * @author: Laity
 * @Project: JavaLaity
 * @Package: com.laity.unsafe.MapTest
 * @Date: 2023年11月26日 02:16
 * @Description: 集合不安全 - Map集合不安全
 */

public class MapTest {
    public static void main(String[] args) {
        // map是这样用的吗？ 不是，工作中不用 HashMap
        // 默认等价于什么？
        // Map<String, String> map = new HashMap<>();
        // 加载因子，初始化容量
        // (16, 0.75f)
        // Map<Object, Object> map = new HashMap<>(1 << 4, 0.75f);
        Map<String, String> map = new ConcurrentHashMap<>(1 << 1);
        // java.util.ConcurrentModificationException - 并发修改异常
        /*
        ConcurrentHashMap<>();
         */
        for (int i = 0; i < 100; i++) {
            new Thread(() -> {
                map.put(Thread.currentThread().getName(), UUID.randomUUID().toString().substring(1, 5));
                System.out.println(map);
            }, String.valueOf(i)).start();
        }
    }
}
